/**=============================================================================
@file
   hvx_vector_register_defines.h

@brief
   Header file for vector register defines.

Copyright (c) 2020 Qualcomm Technologies Incorporated.
All Rights Reserved. Qualcomm Proprietary and Confidential.
=============================================================================**/

#ifndef _HVX_VECTOR_REGISTER_DEFINES_H
#define _HVX_VECTOR_REGISTER_DEFINES_H

#ifdef __cplusplus
extern "C" {
#endif

#include <hexagon_types.h>

typedef union
{
    HVX_VectorPair VV;
    struct
    {
        HVX_Vector l;
        HVX_Vector h;
    } V;
} HVX_VP;

#define V1_0 V1__0.VV
#define V3_2 V3__2.VV
#define V5_4 V5__4.VV
#define V7_6 V7__6.VV
#define V9_8 V9__8.VV
#define V11_10 V11__10.VV
#define V13_12 V13__12.VV
#define V15_14 V15__14.VV
#define V17_16 V17__16.VV
#define V19_18 V19__18.VV
#define V21_20 V21__20.VV
#define V23_22 V23__22.VV
#define V25_24 V25__24.VV
#define V27_26 V27__26.VV
#define V29_28 V29__28.VV
#define V31_30 V31__30.VV

#define V0 V1__0.V.l
#define V1 V1__0.V.h
#define V2 V3__2.V.l
#define V3 V3__2.V.h
#define V4 V5__4.V.l
#define V5 V5__4.V.h
#define V6 V7__6.V.l
#define V7 V7__6.V.h
#define V8 V9__8.V.l
#define V9 V9__8.V.h
#define V10 V11__10.V.l
#define V11 V11__10.V.h
#define V12 V13__12.V.l
#define V13 V13__12.V.h
#define V14 V15__14.V.l
#define V15 V15__14.V.h
#define V16 V17__16.V.l
#define V17 V17__16.V.h
#define V18 V19__18.V.l
#define V19 V19__18.V.h
#define V20 V21__20.V.l
#define V21 V21__20.V.h
#define V22 V23__22.V.l
#define V23 V23__22.V.h
#define V24 V25__24.V.l
#define V25 V25__24.V.h
#define V26 V27__26.V.l
#define V27 V27__26.V.h
#define V28 V29__28.V.l
#define V29 V29__28.V.h
#define V30 V31__30.V.l
#define V31 V31__30.V.h

#ifdef __cplusplus
}
#endif

#endif /* _HVX_VECTOR_REGISTER_DEFINES_H */
